#pragma once

#include <map>
#include "DesignEntityType.h"
using namespace std;

class SymbolTable {
	private:
		map<string, DesignEntityType> mSynonymTable;

	public:
		SymbolTable(void);
		~SymbolTable(void);
		// If string already exists in symbolTable, then return false.
		// Otherwise, insert the std::pair<string, DesignEntityType> normally into the symbolTable.
		//bool insert(string symbol, DesignEntityType);
		// If the string does not exist in the symbolTable, return NULL.
		// Otherwise, returns the DesignEntityType of this symbol
		DesignEntityType getDesignEntityType(string symbol);
		bool addSynonym(DesignEntityType designEntity, string symbol);
};